package org.swift.mashup.engine.concurrency.agenda;

import java.util.Map;

import org.swift.mashup.engine.concurrency.execution.RuleSet;
import org.w3c.dom.Document;


public interface ActionConfig {
	
	public abstract Action createAction(String key, Map<String, ? extends Object> parameters);

	public abstract RuleSet getRuleSet();
	
	public abstract void setRuleSet(RuleSet ruleSet);
	
	public abstract boolean isConcurrent();

	public abstract void setConcurrent(boolean parallel);	
	
	public abstract boolean isDurable();

	public abstract void setDurable(boolean durable);

	public abstract Integer getAgendaTimeout();

	public abstract void setAgendaTimeout(int timeout);

	public abstract Document getSchema();
	
	public abstract Document getValidationRules();

	public abstract String getDocumentation();

    public abstract Integer getRateLimit();

    public abstract void setRateLimit(int limit);
}
